package com.amos.think.api;

import com.alibaba.cola.dto.MultiResponse;
import com.alibaba.cola.dto.SingleResponse;
import com.amos.think.dto.UserModifyCmd;
import com.amos.think.dto.UserRegisterCmd;
import com.amos.think.dto.data.UserUpdateDTO;
import com.amos.think.dto.data.UserVO;
import com.amos.think.dto.query.UserListByParamQuery;
import com.amos.think.dto.query.UserLoginQuery;

import java.util.List;

/**
 * 用户相关
 *
 */
public interface IUserMongoService {

    /**
     * 注册用户
     *
     * @param cmd 用户注册请求
     * @return Response
     */
    void register(UserRegisterCmd cmd);

    /**
     * 用户信息修改
     *
     * @param cmd 用户信息修改请求
     * @return Response
     */
//    UserVO modify(UserModifyCmd cmd);

    /**
     * 用户登录
     *
     * @param query 用户登录请求
     */
//    void login(UserLoginQuery query);

    /**
     * 获取用户信息
     *
     * @param id 用户ID
     * @return 用户信息
     */
//    SingleResponse<UserVO> getUserInfo(String id);

    /**
     * 根据用户名称查询
     *
     * @param query 用户查询请求
     * @return MultiResponse
     */
//    MultiResponse<UserVO> listByName(UserListByParamQuery query);

    /**
     * 删除用户信息
     * @param userId
     */
//    void deleteByUserId(String userId);
//
//    void updateByUserId(UserUpdateDTO userUpdateDTO);

    List<UserVO> getAllUsers() throws Exception;

    void updateUserInfo(UserRegisterCmd userRegisterCmd);

    void delete(String userId);
}
